<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>日期类型</title>
    <script>
        function f1(){
            // 当没有传递参数的时候,表示获取当前时间
            // let date = new Date();
            // 可以传递参数,传递参数时其参数顺序为:年、月、日、时、分、秒、毫秒
            // 没有传递参数的部分,默认全部为初始值
            // 注意点:
                // 1.不能单独传递年份
                // 2.月份的值是0-11表示1-12月
            // let date = new Date(2022,2);
            // let date = new Date(2022,2,31);
            // 传递的参数的值可以超过范围,如果不在范围之内,日期会自动变化
                // 例如:传递2022,2,32,理论上表示2022年3月32日
                // 但是2022年3月只有31天,会自动向后顺延一天,即:2022年4月1日
            // let date = new Date(2022,2,32);
            // 此时按照传递的参数值为:2022年13月32日
                // 由于最多就12月,因此向后顺延1月变为:2023年1月32日
                // 1月最多31天,因此继续顺延天数变为:2023年2月1日
                // 以此类推
            // let date = new Date(2022,12,32);
            let date = new Date(2022,2,31,8,8,8);
            date.setFullYear(2023);
            date.setMonth(3);
            // 此时的日期为2023年5月1日
            // 再次设置date时,是在顺延之后的日期的基础上进行设置
            // 而并不是4月了
            // 因此此时应该为5月12日
            date.setDate(12);
            console.log(date);
            console.log(date.getTime())
            console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+",星期"+date.getDay());
        }
        function f2(){
            // 可以通过距离1970年的毫秒数进行定义
            let date = new Date(1648685288000);
            console.log(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+",星期"+date.getDay());
        }
        function f3(year,month){
            // 根据给定的年份与月份,获取这一年的这一个月最多有多少天
            // 预定义一个日期,该日期为year年month月的最后的一天
            // 调用getDate方法获取到的值即为这个月有多少天
            // 由于目前不知道这个月有多少天,因此无法直接定义这一天
            // 但是这一天的下一天一定是下个月的第一天
            // 定义下一个月的第一天,new Date(year,month-1+1,1)
            // 下个月的第一天的前一天即为这个月的最后一天
            // new Date(year,month-1+1,1-1),即:new Date(year,month,0)
            // 因此,这个月的最后一天即为new Date(month,0)
            let day = new Date(year,month,0).getDate();
            console.log(year+"年"+month+"月共有"+day+"天");
        }
    </script>
</head>
<body>
<button onclick="f1()">定义方式一</button><br/>
<button onclick="f2()">定义方式二</button><br/>
<button onclick="f3(2000,2)">练习</button><br/>
</body>
</html>